package com.fowo.api.model.supplier.patrol.task;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fowo.api.common.validator.*;
import io.swagger.v3.oas.annotations.media.Schema;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/**
 * 供应商巡场任务 预览导入辅助模型(全字段为文本类型)
 * @author yl_ls
 */
@Getter
@Setter
public class SupplierPatrolTaskImportPo {

  /** 任务编号 */
  @ExcelProperty("*任务编号")
  @NotBlank(message = "任务编号不能为空")
  private String patrolTaskId;

  /** 标题 */
  @ExcelProperty("标题")
  @Size(max = 1024, message = "标题长度不能超过1024")
  private String title;

  /** 采购订单 */
  @ExcelProperty("采购订单")
  private String purchaseIdPurchaseOrderCode;

  @ExcelIgnore
  @Schema(title = "采购订单")
  private String purchaseId;

  /** 供应商 */
  @ExcelProperty("供应商")
  @Size(max = 50, message = "供应商长度不能超过50")
  private String supplierIdSupplierName;

  @ExcelIgnore
  @Schema(title = "供应商")
  private String supplierId;

  /** 供应商等级 */
  @ExcelProperty("供应商等级")
  private String grade;

  /** 状态 */
  @ExcelProperty("状态")
  private String status;

  /** 分配人员 */
  @ExcelProperty("*分配人员")
  @NotBlank(message = "分配人员不能为空")
  @Size(max = 50, message = "分配人员长度不能超过50")
  private String toUserName;

  @ExcelIgnore
  @Schema(title = "*分配人员")
  private String toUser;

  /** 巡场人员 */
  @ExcelProperty("巡场人员")
  @Size(max = 50, message = "巡场人员长度不能超过50")
  private String doUserName;

  @ExcelIgnore
  @Schema(title = "巡场人员")
  private String doUser;

  /** 巡场时间 */
  @ExcelProperty("巡场时间")
  @DateString(message = "巡场时间不是有效的日期格式")
  private String doTime;

  /** 截止时间 */
  @ExcelProperty("*截止时间")
  @NotBlank(message = "截止时间不能为空")
  @DateTimeString(message = "截止时间不是有效的时间日期格式")
  private String endTime;

  /** 备注 */
  @ExcelProperty("备注")
  @Size(max = 1024, message = "备注长度不能超过1024")
  private String remark;

  /** 及时率 */
  @ExcelProperty("及时率")
  @DecimalString(message = "及时率小数格式不正确", label = "及时率")
  private String speedRate;

  /** 良品率 */
  @ExcelProperty("良品率")
  @DecimalString(message = "良品率小数格式不正确", label = "良品率")
  private String goodQuantity;

  /** 综合评分 */
  @ExcelProperty("综合评分")
  @IntegerString(
    message = "综合评分数值格式不正确",
    label = "综合评分",
    min = 0
  )
  private String score;

  /** 订单逾期次数 */
  @ExcelProperty("订单逾期次数")
  @IntegerString(
    message = "订单逾期次数数值格式不正确",
    label = "订单逾期次数",
    min = 0
  )
  private String orderOverdueNumber;

  /** 订单逾期天数 */
  @ExcelProperty("订单逾期天数")
  @IntegerString(message = "订单逾期天数数值格式不正确", label = "订单逾期天数")
  private String orderOverdueDays;

  /** 流程编码 */
  @ExcelProperty("*流程编码")
  @NotBlank(message = "流程编码不能为空")
  private String enCode;

  /** 转交人 */
  @ExcelProperty("转交人")
  @Size(max = 50, message = "转交人长度不能超过50")
  private String forwardUserName;

  @ExcelIgnore
  @Schema(title = "转交人")
  private String forwardUser;
}
